-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(deps): update module github.com/deepmap/oapi-codegen to v2 #54
base: main
Are you sure you want to change the base?
Conversation
cef3324
to
229a7a3
Compare
229a7a3
to
bc6f5b0
Compare
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
bc6f5b0
to
905cac9
Compare
|
905cac9
to
387a5a3
Compare
387a5a3
to
24d87bf
Compare
This PR contains the following updates:
v1.13.2
->v2.4.1
Release Notes
deepmap/oapi-codegen (github.com/deepmap/oapi-codegen)
v2.4.1
: : A couple of post-release fixesCompare Source
🐛 Bug fixes
📝 Documentation updates
👻 Maintenance
go
directive (#1784) @jamietannaSponsors
We would like to thank our sponsors for their support during this release.
v2.4.0
: : OpenAPI Overlay, improvedimport-mapping
functionality, and a whole host of other great things 🚀Compare Source
🎉 Notable changes
Modifying the input OpenAPI Specification, without needing to modify it directly
Prior to
oapi-codegen
v2.4.0, users wishing to override specific configuration, for instance taking advantage of extensions such asx-go-type
would need to modify the OpenAPI specification they are using.In a lot of cases, this OpenAPI specification would be produced by a different team to the consumers (or even a different company) and so asking them to make changes like this were unreasonable.
This would lead to the API consumers needing to vendor the specification from the producer (which is our recommendation anyway) and then make any number of local changes to the specification to make it generate code that looks reasonable.
However, in the case that a consumer would update their specification, they would likely end up with a number of merge conflicts.
Now, as of
oapi-codegen
v2.4.0, it is now possible to make changes to the input OpenAPI specification without needing to modify it directly.This takes advantage of the OpenAPI Overlay specification, which is a stable specification.
We're very excited for y'all to be able to take advantage of this, and to be able to manipulate complex specifications you don't have control over.
Using a single package, with multiple OpenAPI spec for a given package
Since
oapi-codegen
v2.4.0, it is now possible to split large OpenAPI specifications into the same Go package, using the "self" mapping (denoted by a-
) when using Import Mapping.This is an improvement on the previous model, which would require splitting files across multiple packages.
This should improve the ability to use a multi-file OpenAPI specification.
Reverting a breaking change to Strict servers using
text/plain
Changes in https://github.com/oapi-codegen/oapi-codegen/pull/1132 had unintended side effects, and so we have reverted this.
This will be a breaking change to anyone who had pulled in this change, since it landed in v1.13.1.
Minimum version of Go needed for
oapi-codegen
is now 1.21Does what it says on the tin.
This was required for a new dependency, and given Go 1.21 is now End-of-Life, this isn't too bad a requirement, without requiring folks unnecessarily bump their minimum supported version higher.
Starting work towards the OpenSSF Best Practices badge
As a means to better understand the compliance of
oapi-codegen
with OpenSSF's Best Practices guide, we've started work towards the "passing" badge.This gives us some insight into where we have gaps, and makes it known for our users, too.
PR Builds now have required status checks
Previously, PR builds did not have a required status check.
Although as maintainers we would only merge changes after the CI checks had passed, this now gives us - and you as our users - greater confidence in the stability of the project.
Previously raised PRs - before 2024-09-20 - will need to merge in the latest changes in
main
before these status checks will pass.🚀 New features and improvements
import-mapping
to the current package (#1774) @jamietanna @djgilcreaseMux
interface instead of*http.ServeMux
(#1720) @sonalys<
and>
in property or type names (#1740) @ansonix-oapi-codegen-only-honour-go-name
(#1697) @jamietanna🐛 Bug fixes
anyOf
s (#1178) @daleef-rahmancookie
variables in block scope (#1687) @andremarianiellox-order
from next to$ref
, if present (#1700) @paulmach📝 Documentation updates
deepmap/oapi-codegen
references (#1771) @jamietannain: cookie
(#1770) @jamietannaFUNDING.yml
(#1661) @jamietanna👻 Maintenance
📦 Dependency updates
9 changes
Sponsors
We would like to thank our sponsors for their support during this release.
v2.3.0
: Updates related to repository moveCompare Source
With this version,
oapi-codegen
consolidates all code undergithub.com/oapi-codegen
. When you install the core tool, please use this new location,github.com/oapi-codegen/oapi-codegen/v2
starting with versionv2.3.0
, but continue to usegithub.com/deepmap/oapi-codegen/v2
with any earlier release.This release contains changes to import paths, go.mod and the README.
What's Changed
Full Changelog: oapi-codegen/oapi-codegen@v2.2.0...v2.3.0
v2.2.0
: : Pure-Go 1.22+ server, documentation overhaul. JSON schema and several bug fixesCompare Source
Big announcements
In case you've missed it, we've got a few big announcements as maintainers of
oapi-codegen
which we'd recommend you read in more depth.oapi-codegen
is moving to its own orgoapi-codegen
in the futureWe'd also like to thank our sponsors for this release:
🔊 Notable features
The v2.2.0 release was largely focussed on the following big changes, alongside a number of other bug fixes.
Generate a pure Go 1.22+
net/http
serverWith Go 1.22+'s enhanced routing, it's now easier than ever to be able to write a pure-Go HTTP service, and thanks to a contribution from @thedadams we now have a
std-http-server
, further documented in the Supported Servers section in the README.Documentation overhaul
A significant undertaking in this release was to rewrite pretty much every line of documentation we had, as well as introducing a number of additional examples and test cases.
We're excited to hear your feedback on the new structure of the README, the additional docs added, and whether there are any additional examples that may be of use.
JSON Schema configuration
In the spirit of documentation, we now also have a JSON schema which can be found further documented in the Usage section in the README.
This not only gives a separate definition of fields and their meaning, but it can be used with IDEs for autocompletion and validation, allowing for a much better Developer Experience.
kin-openapi upgrade
A few big upgrades have come in kin-openapi, which we use for the underlying OpenAPI parsing and validation, which included a significant breaking change that meant that consumers of
oapi-codegen
couldn't upgrade the kin-openapi version until we had made changes inoapi-codegen
.This has additionally been set up as an FAQ as it's one we commonly get.
🚀 New features and improvements
🐛 Bug fixes
nullable
(#1585) @jamietanna📝 Documentation updates
echo
server (#1627) @jamietannax-go-type-name
docs (#1616) @jamietannastd-http-server
example (#1576) @sajjanjyothimain
branch (#1493) @dharsanb👻 Maintenance
mergeOpenapiSchemas
(#1424) @Juneezeegolang.org/x/lint
(#1588) @jamietannaadditionalProperties
bug (#1528) @jamietanna📦 Dependency updates
16 changes
v2.1.0
: : Nullable, external reference improvements, x-order, and many more!Compare Source
🔊 Notable features
Nullable
typesIt's possible that you want to be able to determine whether a field isn't sent, is sent as
null
or has a value.For instance, if you had the following OpenAPI property:
The current behaviour in oapi-codegen is to generate:
However, you lose the ability to understand the three cases, as there's no way to distinguish two of the types from each other:
S.Field == nil
)null
? (Can be checked withS.Field == nil
)S.Field != nil && *S.Field == "123"
)Therefore, as requested in #1039, this is now possible to represent with the
nullable.Nullable
type from our new library, oapi-codegen/nullable.If you configure your generator's Output Options as so:
You will now receive the following output:
Note that this is opt-in only, due to it being a break in existing signatures and behaviour.
You can find out more about how this works in a blog post with further details.
External references are now handled better
A big change has come in which handling of external references (also called import mappings) is much more resilient and predictable for generated code.
This allows cases where multiple files referencing each other (for instance if you've split your API across multiple files, and join them using
$ref
s) now correctly generate code.There are a few cases that won't be covered, that we'll complete in https://github.com/deepmap/oapi-codegen/issues/1440 but until then, it hopefully should work better.
Thank you to Ejendomstorvet for sponsoring this work.
🚀 New features and improvements
nullable.Nullable
for nullable properties (#1404) @sonasingh46IsMediaTypeJson
(#1386) @jamietanna.Required
toBindStyledParameterWithLocation
andBindStyledParameter
(#1315) @renom🐛 Bug fixes
os.Exit(1)
only frommain()
(#1398) @alexandear.Required
toBindStyledParameterWithLocation
andBindStyledParameter
(#1315) @renom📝 Documentation updates
import-mapping
with URLs (#1428) @jamietanna👻 Maintenance
📦 Dependency updates
New Contributors
v2.0.0
: : Remove deprecated packagesCompare Source
As announced in oapi-codegen v2 is coming, this is a release to perform some cleanup, drastically reducing the dependency graph for users of the library, and migrating to multi-repo middleware and utility packages that can evolve separately to the code generator itself.
There's more details in https://www.jvt.me/posts/2023/10/23/oapi-codegen-v2-decrease/ in the exact benefits ??, but the key metrics you will be interested in seeing are:
Key changes
Full Changelog: oapi-codegen/oapi-codegen@v1.16.2...v2.0.0
As a consumer, for the most part you shouldn't have much to do, as if you've been using oapi-codegen v1.15.0 or later, you should be using the new packages.
If you use this as a library or execute it as part of
go run
you will need to update module import paths:If you're installing the package via
go install
, you'll need to run the following instead:Move
pkg/testutil
to its own package + remove itSimilar to the below changes, we've moved
pkg/testutil
to its own package, and removed it from the codebase.The changes for you as a consumer can be seen here.
This is almost a drop in replacement, the key difference is that there is no longer a
RequestBuilder.Go
method, as it is replaced by theRequestBuilder.GoWithHTTPHandler.
Remove deprecated packages:
For the packages:
pkg/chi-middleware
pkg/fiber-middleware
pkg/gin-middleware
pkg/middleware
pkg/runtime
pkg/types
These have been deprecated because they are now hosted as individual modules at https://github.com/oapi-codegen/. Doing so allows for their dependencies to be separated from each other, so your transitive module dependencies decrease. Any code which you generate using v1.15.0 will already refer to these modules in their new location.
v1.16.3
Compare Source
v1.16.2
: : Further improve documentation noticesCompare Source
What's Changed
Full Changelog: oapi-codegen/oapi-codegen@v1.16.1...v1.16.2
v1.16.1
: : Ensure deprecation comments appear correctlyCompare Source
What's Changed
Full Changelog: oapi-codegen/oapi-codegen@v1.16.0...v1.16.1
v1.16.0
: : Reduce runtime dependenciesCompare Source
As part of the final preparation towards the v2 release, this release finalises the use of the new multi-repo packages, and deprecates all internal packages ahead of next week's release removing them.
Key callouts
testutil
by @jamietanna in https://github.com/deepmap/oapi-codegen/pull/1314Full Changelog: oapi-codegen/oapi-codegen@v1.15.0...v1.16.0
v1.15.0
: : Remove issues with Go 1.21Compare Source
Go Toolchain issues
As flagged in https://github.com/deepmap/oapi-codegen/issues/1221, folks using Go 1.21 for their local builds - but maybe not targeting Go 1.21, will have been receiving diffs like:
This is due to changes in Go 1.21's management of toolchains, and is a side effect of Fiber and Iris targeting Go 1.21.
These dependencies have now been downgraded to requiring 1.20, and we've taken steps as maintainers to reduce the impact in the future, so we should only be targeting the lowest Go version supported by the Go team.
What's Changed
MiddlewareFunc
type for compatibility by @namco1992 in https://github.com/deepmap/oapi-codegen/pull/1134New Contributors
Full Changelog: oapi-codegen/oapi-codegen@v1.14.0...v1.15.0
v1.14.0
: : Iris Support, Go 1.20 requirement, reduction of runtime dependencies, and various other features and fixesCompare Source
Key callouts
What's Changed
New Contributors
Full Changelog: oapi-codegen/oapi-codegen@v1.13.4...v1.14.0
v1.13.4
Compare Source
What's Changed
Full Changelog: oapi-codegen/oapi-codegen@v1.13.3...v1.13.4
v1.13.3
Compare Source
What's Changed
Full Changelog: oapi-codegen/oapi-codegen@v1.13.2...v1.13.3
Configuration
📅 Schedule: Branch creation - "every 1 months on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.